abstract  class  Shap                 
{
      Static String str = "shap:";
abstract void show();
 }
class Picture                  
{
     Picture(String str)
     {
        System.out.println("paint a picture: "+ str);
     }
     void show ()
     {
        System.out.println("a picture: ");
     }
public Shap paint(final int r) 
     {
         Shap shap ;
shap  =  new Shap(){                 //ָڲʵ
   void show()
   {
      System.out.println(Shap.str );      //ʸľ̬
      System.out.println("paint a circle radius =" + r );
   }
   
};    //ڲԣ
              return shap
         }
          public Picture paint() 
     {
return new Picture("tree"){              //
   void show()
   {
      System.out.println("paint a beautiful picture" ); //Ǹķ
   }
};    //ڲ
          }
       }// end of Picture
public class Test4_17                              //һ
{
      public static void main(String[] args)         
      {
           Picture pic = new Picture(mountain);
           Shap shap = pic.paint(5);
           shap.show();           
           Picture p = pic.paint();  
           p.show();                            //ʱڲาǵķ
}
}
